using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
using System.Text;

public partial class cargadatos_CargaErrores : System.Web.UI.Page
{

    protected ArchivoCargaBean _archivoConError = null;
    protected DataTable _dtDataErrores = null;
    private string[] _arrErrores = null;
    private string _errores = null;
    private char[] _separador = { '|' };
    private System.Text.StringBuilder _listaErrores;
    private DataRowView _rowView;
    private string _nombreArchivo = "";

    public List<ArchivoCargaBean> ListaArchivosEjecutados
    {
        get
        {
            if (Session["ListaArchivosEjecutados"] == null)
            {
                Session["ListaArchivosEjecutados"] = new List<ArchivoCargaBean>();
            }

            return Session["ListaArchivosEjecutados"] as List<ArchivoCargaBean>;
        }

        set { Session["ListaArchivosEjecutados"] = value; }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            string archivo = Request["id"];
            //Master.limpiarMensaje();
            //UCMessageBox1.limpiar();
            _archivoConError = this.ListaArchivosEjecutados.Find(delegate(ArchivoCargaBean bean)
                                       {
                                           return bean.Nombre == archivo;
                                       });

            if (_archivoConError != null && _archivoConError.ErrorEnData != string.Empty)
            {
                _dtDataErrores = new DataTable();
                _nombreArchivo = _archivoConError.Nombre.ToUpper().Trim();
                _dtDataErrores = getErrores();
                GridView1.DataSource = _dtDataErrores;
                GridView1.DataBind();
            }
        }
    }

    private DataTable getErrores()
    {
        string SP = "";
        switch (_nombreArchivo)
        {
            case "USUARIO":
                SP = "USPC_ERROR_USUARIO";
                break;
            case "ESTADO":
                SP = "USPC_ERROR_ESTADO";
                break;
            case "CLIENTE":
                SP = "USPC_ERROR_CLIENTE";
                break;
            case "MOTIVO":
                SP = "USPC_ERROR_MOTIVOS";
                break;
            case "ACTIVIDAD":
                SP = "USPC_ERROR_ACTIVIDAD";
                break;
        }

        ArrayList alParameters = new ArrayList();

        DataSet ds = DBUtilSQLServer.getDataset(SP, alParameters);
        if (ds == null || (ds != null && ds.Tables.Count == 0))
        {
            return new DataTable();
        }

        return ds.Tables[0];
    }


    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {

        int cantColumnas = e.Row.Cells.Count - 1;

        if (e.Row.RowType == DataControlRowType.Header)
        {
            for (int i = 0; i <= cantColumnas; i++)
            {
                e.Row.Cells[i].Text = IdiomaCultura.getMensajeEncodeHTML(e.Row.Cells[i].Text).ToUpper();
            }
        }

        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            _rowView = (DataRowView)e.Row.DataItem;
            //_errores = _rowView["ERROR"].ToString();

            _errores = e.Row.Cells[cantColumnas].Text;
            _arrErrores = _errores.Split(_separador);
            _listaErrores = new StringBuilder();

            foreach (string error in _arrErrores)
            {
                if (error != string.Empty)
                {
                    _listaErrores.Append(error).Append("<br/>");
                }
            }

            //la ultima columna es de los errores
            e.Row.Cells[e.Row.Cells.Count - 1].Style.Value = "text-align:left;";
            e.Row.Cells[e.Row.Cells.Count - 1].Text = _listaErrores.ToString();
            //rowView["ERROR"] = listaErrores.ToString();
            _listaErrores = null;
        }
    }

}
